Tutorial timeline chooser

ABSTRACT

Systems, apparatuses, and methods for displaying a tutorial timeline chooser are disclosed. Displaying a tutorial timeline chooser may include generating an output for display, the output including a representation of a tutorial subject, wherein a tutorial associated with the tutorial subject includes a sequence of tutorial units, the output for display including a first portion including the representation of the tutorial subject, and a second portion including a tutorial timeline chooser for controlling the tutorial, wherein the tutorial timeline chooser includes a tutorial timeline and a plurality of tutorial segment indicators, wherein each tutorial segment indicator from the plurality of tutorial segment indicators corresponds with a respective tutorial unit from the sequence tutorial units, and transmitting or storing the output for display.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application claims the benefit of U.S. ProvisionalApplication No. 62/098,511, filed Dec. 31, 2014, entitled, “TutorialTimeline Chooser”, herein incorporated by reference.

TECHNICAL FIELD

The present disclosure relates in general to techniques and devices forcontrolling tutorials and in particular for controlling a tutorial for agraphical interface in a cloud computing system.

BACKGROUND

A tutorial for a graphical interface may include a sequence of tutorialportions. Accordingly, a tutorial timeline chooser would beadvantageous.

SUMMARY

One aspect of the disclosure is an apparatus or method for operating awindow region of a graphical user interface (GUI) associated with acomputer-based tutorial system, comprising a processor configured toexecute instructions stored in a memory, the instructions comprising atutorial timeline module that generates a tutorial output for display,the tutorial output comprising a graphical representation of a tutorialsubject in a tutorial display region of the GUI, wherein a tutorialassociated with the tutorial subject includes a sequence of tutorialunits stored in a memory associated with the processor, an output modulethat transmits the tutorial output via a GUI output interface or storesthe tutorial output in the memory, the tutorial timeline modulegenerates an updated tutorial output in response to user input signalsprovided via a GUI input interface, the updated tutorial outputcomprising a first portion comprising the graphical representation ofthe tutorial subject, and a second portion comprising a graphicaltutorial timeline chooser for controlling the tutorial, wherein thegraphical tutorial timeline chooser comprises a tutorial timelinedisplay region and a plurality of tutorial segment indicator displayregions, each tutorial segment indicator display region from theplurality of tutorial segment indicator display regions corresponds witha respective tutorial unit from the sequence of tutorial units, and theoutput module transmits the updated tutorial output via the GUI outputinterface or stores the tutorial output in the memory.

Another aspect of the disclosure is an apparatus or method for operatinga window region of a graphical user interface (GUI) associated with acomputer-based tutorial system, comprising a processor configured toexecute instructions stored in a memory to generate an output fordisplay, the output comprising a representation of a tutorial subject,wherein a tutorial associated with the tutorial subject includes asequence of tutorial units, transmit or store the output for display,generate an updated output in response to user input, the updated outputcomprising a first portion including the representation of the tutorialsubject, and a second portion including a tutorial timeline chooser forcontrolling the tutorial, wherein the tutorial timeline choosercomprises a tutorial timeline and a plurality of tutorial segmentindicators, wherein each tutorial segment indicator from the pluralityof tutorial segment indicators corresponds with a respective tutorialunit from the sequence tutorial units, wherein generating the updatedoutput comprises identifying a current state of the tutorial timelinechooser, wherein the current state indicates a first subset of tutorialunits, from the sequence of tutorial units, that is currently includedin the output for display, and a second subset of tutorial units, fromthe sequence of tutorial units, that is currently omitted from theoutput for display, and transmit or store the updated output as theoutput for display.

Another aspect of the disclosure is an apparatus or method for operatinga window region of a graphical user interface (GUI) associated with acomputer-based tutorial system, comprising generating, using aprocessor, a tutorial output for display on a display device, thetutorial output comprising a representation of a tutorial subject,wherein a tutorial associated with the tutorial subject comprises asequence of tutorial units stored in a memory accessible by theprocessor, transmitting via a GUI output interface or storing in thememory the tutorial output for the display, generating an updatedtutorial output in response to user input entered at a GUI inputinterface, the updated tutorial output comprising a first portioncomprising the representation of the tutorial subject, and a secondportion including a tutorial timeline chooser for controlling thetutorial, wherein the tutorial timeline chooser comprises a tutorialtimeline and a plurality of tutorial segment indicators, wherein eachtutorial segment indicator from the plurality of tutorial segmentindicators corresponds with a respective tutorial unit from the sequenceof tutorial units, wherein generating the updated tutorial outputcomprises identifying a current state of the tutorial timeline chooser,wherein the current state indicates a first subset of tutorial unitsfrom the sequence of tutorial units that is currently included in thetutorial output for display, and a second subset of tutorial units fromthe sequence of tutorial units that is currently omitted from the outputfor display, and wherein the user input indicates a selection of atarget tutorial segment identifier corresponding to a target tutorialunit from the second subset, updating a characteristic of the targettutorial segment identifier to indicate that the target tutorial unit isincluded in the tutorial output for display, on a condition that thefirst subset includes a tutorial unit, updating a control included in asequentially last tutorial unit from the first subset, such thatselection of the control indicates a request to close the correspondingtutorial unit, wherein the second subset includes a tutorial unitsequentially preceding the target tutorial unit, and wherein includingthe target tutorial unit in the updated output includes omitting thetutorial unit from the second subset sequentially preceding the targettutorial unit, and including the target tutorial unit in the updatedoutput, and transmitting via the GUI output interface or storing in thememory the updated tutorial output for the display.

BRIEF DESCRIPTION OF THE DRAWINGS

The description herein makes reference to the accompanying drawingswherein like reference numerals refer to like parts throughout theseveral views.

FIG. 1 is a block diagram of a networked distributed or cloud computingsystem in which the teachings herein may be implemented.

FIG. 2 is a block diagram of an example internal configuration of acomputing device, such as a computing device of the computing system asshown in FIG. 1.

FIGS. 3A-3G are pictorial diagrams showing examples of a timelinetutorial chooser in accordance with this disclosure.

FIG. 4 is a flowchart of an example of generating a timeline tutorialchooser in accordance with this disclosure.

DETAILED DESCRIPTION

A tutorial, or help system, may provide information describing orexplaining a feature or function of an aspect or element within adefined context or subject, such as a user interface for an aspect of acloud computing system. In some implementations, a tutorial may beorganized as an ordered sequence of tutorial units, steps, or stages. Auser may navigate through a tutorial by progressing through eachtutorial unit in sequence. However, navigating through the tutorialsequentially may be inefficient.

A tutorial timeline chooser may represent the sequence of tutorial unitsfor a tutorial using a corresponding sequence of tutorial stageindicators positioned along a tutorial timeline, which may represent thetutorial as a continuum, such as a line from left to right. In responseto user input signals, a tutorial timeline chooser may control thetutorial to display none of the tutorial units or all of the tutorialunits. A tutorial timeline chooser may control the tutorial to displaythe tutorial units in sequence, or independently of sequence, inresponse to user input signals. For example, a tutorial timeline choosermay control the tutorial to display target tutorial units, in any order,in response to user input signals selecting the corresponding tutorialstage indicators.

FIG. 1 is a block diagram of a distributed (e.g., client-server,networked, or cloud) computing system 100. Use of the phrase “cloudcomputing system” herein is a proxy for any form of a distributedcomputing system, and this phrase is used simply for ease of reference.Cloud computing system 100 can have any number of customers, includingcustomer 110. Each customer 110 may have clients, such as clients 112.Each of clients 112 can be in the form of a computing system includingmultiple computing devices, or in the form of a single computing device,for example, a mobile phone, a tablet computer, a laptop computer, anotebook computer, a desktop computer, and the like. Customer 110 andclients 112 are examples only, and a cloud computing system may have adifferent number of customers or clients or may have a differentconfiguration of customers or clients. For example, there may behundreds or thousands of customers and each customer may have any numberof clients. Customers and clients may be described more generally asrespective user entities/groups and end users.

Cloud computing system 100 can include any number of datacenters,including datacenter 120. Each datacenter 120 may have servers, such asservers 122. Each datacenter 120 may represent a facility in a differentgeographic location where servers are located. Each of servers 122 canbe in the form of a computing system including multiple computingdevices, or in the form of a single computing device, for example, adesktop computer, a server computer and the like. The datacenter 120 andservers 122 are examples only, and a cloud computing system may have adifferent number of datacenters and servers or may have a differentconfiguration of datacenters and servers. For example, there may be tensof data centers and each data center may have hundreds or any number ofservers.

Clients 112 and servers 122 may be configured to connect to network 130.The clients for a particular customer may connect to network 130 via acommon connection point 116 or different connection points, e.g. awireless connection point 118 and a wired connection point 119. Anycombination of common or different connections points may be present,and any combination of wired and wireless connection points may bepresent as well. Network 130 can be, for example, the Internet. Network130 can also be or include a local area network (LAN), wide area network(WAN), virtual private network (VPN), or any other means of transferringdata between any of clients 112 and servers 122. Network 130, datacenter120 and/or blocks not shown may include network hardware such asrouters, switches, load balancers and/or other network devices.

Other implementations of the cloud computing system 100 are alsopossible. For example, devices other than the clients and servers shownmay be included in system 100. In an implementation, one or moreadditional servers may operate as a cloud infrastructure control, fromwhich servers and/or clients of the cloud infrastructure are monitored,controlled and/or configured. For example, some or all of the techniquesdescribed herein may operate on said cloud infrastructure controlservers. Alternatively, or in addition, some or all of the techniquesdescribed herein may operate on servers such as servers 122.

FIG. 2 is a block diagram of an example internal configuration of acomputing device 200, such as a client 112 or server device 122 of thecomputing system 100 as shown in FIG. 1, including an infrastructurecontrol server, of a computing system. As previously described, clients112 or servers 122 may take the form of a computing system includingmultiple computing units, or in the form of a single computing unit, forexample, a mobile phone, a tablet computer, a laptop computer, anotebook computer, a desktop computer, a server computer and the like.

The computing device 200 can include a number of components, asillustrated in FIG. 2. CPU (or processor) 202 can be a centralprocessing unit, such as a microprocessor, and can include single ormultiple processors, each having single or multiple processing cores.Alternatively, CPU 202 can include another type of device, or multipledevices, capable of manipulating or processing information now-existingor hereafter developed. When multiple processing devices are present,they may be interconnected in any manner, including hardwired ornetworked, including wirelessly networked. Thus, the operations of CPU202 can be distributed across multiple machines that can be coupleddirectly or across a local area or other network The CPU 202 can be ageneral purpose processor or a special purpose processor.

Random Access Memory (RAM 204) can be any suitable non-permanent storagedevice that is used as memory. RAM 204 can include executableinstructions and data for immediate access by CPU 202. RAM 204 typicallycomprises one or more DRAM modules such as DDR SDRAM. Alternatively, RAM204 can include another type of device, or multiple devices, capable ofstoring data for processing by CPU 202 now-existing or hereafterdeveloped. CPU 202 can access and manipulate data in RAM 204 via bus212. The CPU 202 may utilize a cache 220 as a form of localized fastmemory for operating on data and instructions.

Storage 206 can be in the form of read only memory (ROM), a disk drive,a solid state drive, flash memory, Phase-Change Memory (PCM), or anyform of non-volatile memory designed to maintain data for some durationof time, and preferably in the event of a power loss. Storage 206 caninclude executable instructions 206A and application files/data 206Balong with other data. The executable instructions 206A can include, forexample, an operating system and one or more application programs forloading in whole or part into RAM 204 (with RAM-based executableinstructions 204A and application files/data 204B) and to be executed byCPU 202. The executable instructions 206A may be organized intoprogrammable modules or algorithms, functional programs, codes, and codesegments designed to perform various functions described herein.

The term module, as used herein, can be implemented using hardware,software, or a combination thereof. A module may form a part of a largerentity, and may itself be broken into sub-entities. When a module isimplemented using software, this software can be implemented asalgorithmic components comprising program instructions stored in amemory, the instructions designed to be executed on a processor. Theterm “module” does not require any specific form of coding structure,and functional aspects of different modules may be independent but alsomay overlap and be performed by common program instructions. Forexample, a first module and a second module may be implemented using acommon set of program instructions without distinct boundaries betweenthe respective and/or common instructions that implement the first andsecond modules.

The operating system can be, for example, a Microsoft Windows®, Mac OSX®, or Linux®, or operating system, or can be an operating system for asmall device, such as a smart phone or tablet device, or a large device,such as a mainframe computer. The application program can include, forexample, a web browser, web server and/or database server. Applicationfiles 206B can, for example, include user files, database catalogs andconfiguration information. In an implementation, storage 206 includesinstructions to perform the discovery techniques described herein.Storage 206 may comprise one or multiple devices and may utilize one ormore types of storage, such as solid state or magnetic.

The computing device 200 can also include one or more input/outputdevices, such as a network communication unit 208 and interface 230 thatmay have a wired communication component or a wireless communicationscomponent 290, which can be coupled to CPU 202 via bus 212. The networkcommunication unit 208 can utilized any of a variety of standardizednetwork protocols, such as Ethernet, TCP/IP, to name a few of manyprotocols, to effect communications between devices. The interface 230can comprise one or more transceiver(s) that utilize the Ethernet, powerline communication (PLC), WiFi, infrared, GPRS/GSM, CDMA, etc.

A user interface 210 can include a display, positional input device(such as a mouse, touchpad, touchscreen, or the like), keyboard, orother forms of user input and output devices. The user interface 210 canbe coupled to the processor 202 via the bus 212. A graphical userinterface (GUI) 210 is specifically a user interface that allows peopleto interact with a device in a graphical. It can be broken down into aninput portion, an output portion, and a processor that manages, process,and interacts with the input and output portions. The input portion canaccept input created by elements such as a mouse, touchpad, touchscreen,or the like. The output portion of a GUI can generate input displayableon some form of a display, such as a cathode-ray tube (CRT), liquidcrystal display (LCD), and light emitting diode (LED) display, such asan organic light emitting diode (OLED) display. The display is generallyformed of a grid of pixels, each of which can take on variousillumination and optionally color values that are grouped together andarranged to form various higher-level entities (in pixel regions) on thedisplay. These pixel regions can make up icons, windows, buttons,cursors, control elements, text, and other displayable entities. Thedisplay utilizes graphical device interface that typically comprises agraphics processor specifically designed to interact with the hardwareof the display, and may accept high-level instructions from otherprocessors to reduce demands on them. The graphical device interfacetypically has its own memory that serves as a buffer and also allowsmanipulation of stored data by the graphics processor. Operation of thedisplay thus typically involves the graphics processor accessinginstructions and data stored memory to modify pixel regions on thedisplay for the user.

Other implementations of the internal configuration or architecture ofclients and servers 200 are also possible. For example, servers may omitdisplay 210. RAM 204 or storage 206 can be distributed across multiplemachines such as network-based memory or memory in multiple machinesperforming the operations of clients or servers. Although depicted hereas a single bus, bus 212 can be composed of multiple buses, that may beconnected to each other through various bridges, controllers, and/oradapters. Computing devices 200 may contain any number of sensors anddetectors that monitor the device 200 itself or the environment aroundthe device 200, or it may contain a location identification unit 260,such as a GPS or other type of location device. The computing device 200may also contain a power source 270, such as a battery, so that the unitcan operate in a self-contained manner. These may communicate with theCPU/processor 202 via the bus 212.

A tutorial, or help system, may provide information describing orexplaining a feature or function of an aspect or element within adefined context or subject. For example, a tutorial may provideinformation describing an aspect of a cloud computing system, such as auser interface. A tutorial may be integrated within the context thetutorial describes. For example, a tutorial may describe a userinterface, and the tutorial may be integrated into the user interface.In some implementations, a tutorial may be organized as an orderedsequence of tutorial units, steps, or stages. For simplicity andclarity, the description herein describes a tutorial timeline chooser inrelation to a visual task board; however, a tutorial timeline choosermay be used in conjunction with any context. The tutorial shown in FIGS.3A-3G includes four units; however, any number of units may be used.

FIG. 3A is a pictorial diagram that shows an example of a timelinetutorial chooser in accordance with this disclosure. The example shownin FIG. 3A includes a context portion 300, and a tutorial timelinechooser portion 310. Although the tutorial timeline chooser portion 310is shown horizontally left to right above the context portion 300 inFIGS. 3A-3G, the tutorial timeline chooser portion may be included inany position, such as below the context portion, to the left of thecontext portion, or to the right of the context portion, and in anyorientation, such as right to left, top to bottom, or bottom to top. Asshown, the context portion 300 includes a portion of a visual task boardas an example. A tutorial timeline chooser may include a tutorialtimeline 320, tutorial stage indicators 330-336, tutorial controls340-344, or a combination thereof.

The tutorial timeline 320 may represent the tutorial as a continuum,from left to right. Each tutorial stage indicator 330-336 may representa respective tutorial unit, and may be positioned along the tutorialtimeline 320 in sequential order, from left to right. For example, thefirst tutorial stage indicator 330 may correspond with a first unit ofthe tutorial, and may be positioned near the left end of the tutorialtimeline 320. The second tutorial stage indicator 332 may correspondwith a second unit of the tutorial, and may be positioned to the rightof the first stage indicator 330. The third tutorial stage indicator 334may correspond with a third unit of the tutorial, and may be positionedto the right of the second stage indicator 332. The fourth tutorialstage indicator 336 may correspond with a fourth unit of the tutorial,and may be positioned to the right of the third stage indicator 334,near the right end of the tutorial timeline 320. As shown, the timelinetutorial chooser portion 310 includes a show none control 340 to theleft of the tutorial timeline 320, a show all control 342 to the rightof the tutorial timeline 320, and a slider control 344 to the at theleft end of the tutorial timeline 320. In some aspects, the tutorialunits of the tutorial may be hidden or omitted from display, as shown inFIG. 3A.

In some aspects, the tutorial timeline 320 may indicate whether one ormore of the tutorial units is currently included in the output fordisplay, was previously included in the output for display, or acombination thereof. For example, a visual element of one or moreportions of the tutorial timeline 320, such as a line type, color, orweight, may indicate a corresponding tutorial unit, or units, iscurrently included in the output for display, was previously included inthe output for display, or a combination thereof. In FIG. 3A, thetutorial timeline 320 is shown as a broken line to indicate that thetutorial units are omitted from the output for display.

FIG. 3B is a pictorial diagram that shows another example of a timelinetutorial chooser in accordance with this disclosure. The example shownin FIG. 3B is similar to the example shown in FIG. 3A, except asdescribed herein. In some aspects, one or more of the tutorial units maybe shown or included in the tutorial. In FIG. 3B, the first tutorialunit 350 is included in the tutorial. Including a tutorial unit in thetutorial may include generating output for display including arepresentation of the tutorial unit superimposed over context. In FIG.3B, the first tutorial unit 350 is shown superimposed over a portion ofthe visual task board.

The tutorial unit indicators 330-336 may indicate whether thecorresponding tutorial unit is included in the tutorial output fordisplay. For example, a visual element, such as a background color, of atutorial unit indicator that represents a tutorial unit that is includedin the output for display may differ from the corresponding visualelement of a tutorial unit indicator that represents a tutorial unitthat is omitted from the output for display. In FIG. 3B, the firsttutorial unit indicator 330 is shown with a stippled background toindicate that the first tutorial unit is included. In FIG. 3B, a firstportion 322 of the tutorial timeline 320 is shown as a thick solid lineto indicate that the first tutorial unit is included in the output fordisplay, and a second portion 324 of the tutorial timeline 320 is shownas a broken line to indicate that the second, third, and fourth tutorialunits are omitted from the output for display.

In some aspects, a tutorial unit may be included in the output fordisplay in response to input, such as user input signals from a GUI. Forexample, the first tutorial unit 350 may be included in the output fordisplay in response to user input dragging the slider control 344 to aposition along the tutorial timeline 320 corresponding to the firsttutorial unit indicator 330, as shown. In another example, the firsttutorial unit 350 may be included in the output for display in responseto user input clicking or tapping on the first tutorial unit indicator330. In some implementations, the first tutorial unit 350 may beincluded in the output for display in response to starting or openingthe tutorial.

In some aspects, including a tutorial unit in the output for display mayinclude automatically updating the position of the slider control 344 toindicate the current, or most recently included, tutorial unit. Forexample, the first tutorial unit 350 may be included in the output fordisplay, and the position of the slider control 344 may be automaticallyupdated to correspond with the first tutorial unit indicator 330, inresponse to user input clicking on the first tutorial unit indicator330.

In some aspects, including a tutorial unit in the output for display mayinclude automatically updating a visual element of one or more portionsof the tutorial timeline 320 to indicate the current, or most recentlyincluded, tutorial unit. For example, the first tutorial unit 350 may beincluded in the output for display, a visual element, such as lineweight, color, or type, of the first portion 322 of the tutorialtimeline 320 may be automatically updated.

In some implementations, a tutorial unit may include one or morecontrols. For example, in FIG. 3B, the first tutorial unit 350 includesa “Next” control 352. In some aspects, a tutorial unit may be includedin the output for display in response to input, such as user input,advancing the tutorial. For example, the timeline tutorial chooser mayreceive information indicating user input clicking or tapping on acontrol, such as the “Next” control 352, and a subsequent tutorial unitmay be included in the output for display as shown in FIG. 3C.

FIG. 3C is a pictorial diagram that shows another example of a timelinetutorial chooser in accordance with this disclosure. The example shownin FIG. 3C is similar to the example shown in FIG. 3B, except asdescribed herein. In FIG. 3C, the second tutorial unit 360 is includedin the output for display, the second tutorial unit indicator 332indicates that the second tutorial unit 360 is included in the outputfor display, the position of the slider control 344 indicates that thesecond tutorial unit 360 is included in the output for display, and thefirst portion 322 of the tutorial timeline 320, which is shown as athick solid line, indicates that the second tutorial unit 360 isincluded in the output for display. The second tutorial unit 360includes a “Next” control 362.

In some aspects, including a tutorial unit in the output for display mayinclude automatically updating another tutorial unit, or a portionthereof. For example, the control 352 included in the first tutorialunit 350 may be updated from a “Next” control, as shown in FIG. 3B, to a“Close” control as shown in FIG. 3C.

FIG. 3D is a pictorial diagram that shows another example of a timelinetutorial chooser in accordance with this disclosure. The example shownin FIG. 3D is similar to the example shown in FIG. 3C, except asdescribed herein. In FIG. 3D, the third tutorial unit 370 is included inthe output for display, the third tutorial unit indicator 334 indicatesthat the third tutorial unit 370 is included in the output for display,the position of the slider control 344 indicates that the third tutorialunit 370 is included in the output for display, the first portion 322 ofthe tutorial timeline 320, which is shown as a thick solid line,indicates that the third tutorial unit 370 is included in the output fordisplay, and the control 362 included in the second tutorial unit 360 isa “Close” control. The third tutorial unit 370 includes a “Next” control372.

FIG. 3E is a pictorial diagram that shows another example of a timelinetutorial chooser in accordance with this disclosure. The example shownin FIG. 3E is similar to the example shown in FIG. 3D, except asdescribed herein. In FIG. 3E, the fourth tutorial unit 380 is includedin the output for display, the fourth tutorial unit indicator 336indicates that the fourth tutorial unit 380 is included in the outputfor display, the position of the slider control 344 indicates that thefourth tutorial unit 380 is included in the output for display, thefirst portion 322 of the tutorial timeline 320, which is shown as athick solid line, indicates that the fourth tutorial unit 380 isincluded in the output for display, and the control 372 included in thethird tutorial unit 370 is a “Close” control. The fourth tutorial unit380 includes an “OK” control 382.

FIG. 3F is a pictorial diagram that shows another example of a timelinetutorial chooser in accordance with this disclosure. The example shownin FIG. 3F is similar to the example shown in FIG. 3E, except asdescribed herein. In FIG. 3F, the tutorial timeline 320 is shown as athick solid line, and indicates that all of the tutorial units 350, 360,370, 380 are included in the output for display.

In some aspects, multiple tutorial units may be included in the outputfor display in response to input, such as user input. For example, thefirst tutorial unit 350, and the second tutorial unit 360, may beincluded in the output for display in response to user input draggingthe slider control 344 from the left end of the tutorial timeline 320,as shown in FIG. 3A, to a position along the tutorial timeline 320corresponding to the second tutorial unit indicator 332, as shown inFIG. 3C.

In another example, the first tutorial unit 350, the second tutorialunit 360, and the third tutorial unit 370, may be included in the outputfor display in response to user input dragging the slider control 344from the left end of the tutorial timeline 320, as shown in FIG. 3A, orfrom a position along the tutorial timeline 320 corresponding to thefirst tutorial unit indicator 332, as shown in FIG. 3C, to a positionalong the tutorial timeline 320 corresponding to the third tutorial unitindicator 334, as shown in FIG. 3D.

In another example, the first tutorial unit 350, the second tutorialunit 360, the third tutorial unit 370, and the forth tutorial unit 380,may be included in the output for display in response to user inputdragging the slider control 344 from the left end of the tutorialtimeline 320, as shown in FIG. 3A, from a position along the tutorialtimeline 320 corresponding to the first tutorial unit indicator 332, asshown in FIG. 3C, or from a position along the tutorial timeline 320corresponding to the second tutorial unit indicator 334, as shown inFIG. 3D, to a position along the tutorial timeline 320 corresponding tothe fourth tutorial unit indicator 336, as shown in FIG. 3D.

In another example, the first tutorial unit 350, the second tutorialunit 360, the third tutorial unit 370, and the forth tutorial unit 380,may be included in the output for display in response to user inputclicking or tapping on the “All” control 342.

In some aspects, a tutorial unit may be included directly, in responseto input, such as user input, selecting the tutorial unit. For example,a tutorial unit may be included in response to user input clicking onthe tutorial stage indicator representing the tutorial unit as shown inFIG. 3G.

FIG. 3G is a pictorial diagram that shows another example of a timelinetutorial chooser in accordance with this disclosure. The example shownin FIG. 3G is similar to the example shown in FIG. 3A, except asdescribed herein. In FIG. 3G, the third tutorial unit 370 is included inthe output for display, the third tutorial unit indicator 334 indicatesthat the third tutorial unit 370 is included in the output for display,and the position of the slider control 344 indicates that the thirdtutorial unit 370 is included in the output for display. The tutorialtimeline 320 is shown as a broken line to indicate that the includedtutorial unit 370 was included directly. The other tutorial units 350,360, 380 may be omitted as shown. The third tutorial unit 370 includes a“Close” control 372.

Although FIG. 3G shows one example of directly including a tutorial unitin the output for display, any one or more tutorial units may bedirectly included in, or omitted from, the output for display inresponse to user input selecting or deselecting the correspondingtutorial stage identifiers respectively.

FIG. 4 is a flowchart of an example of generating a timeline tutorialchooser in accordance with this disclosure. Generating a timelinetutorial chooser may be implemented in a computing system, such as thecloud computing system 100 shown in FIG. 1. For example, generating atimeline tutorial chooser may be implemented on a server, such as one ormore of the servers 122 shown in FIG. 1, a computing device, such as aclient 112 shown in FIG. 1, or by a combination thereof communicatingvia a network, such as the network 130 shown in FIG. 1. Generating atimeline tutorial chooser may include identifying a tutorial at 400,identifying a current state of the tutorial timeline chooser at 410,generating or updating the tutorial timeline chooser at 420, displayingthe tutorial at 430, receiving input at 440, or a combination thereof.

A tutorial may be identified at 400. In some aspects, a tutorial may beidentified in response to input, such as user input. For example, a userof a visual task board may select a help or tutorial feature of thevisual task board, and a tutorial may be identified in response. In someaspects, identifying a tutorial may include reading informationdescribing the tutorial from one or more databases, one or more files,or a combination thereof.

Identifying the tutorial may include identifying one or more tutorialunits, such as the tutorial units 350, 360, 370, 380 shown in FIGS.3B-3G. In some aspects, identifying the tutorial units may includedetermining a cardinality of the set of tutorial units. For example, inFIGS. 3A-3G, the tutorial includes a set of four tutorial units. In someaspects, the tutorial units, and the cardinality thereof, may beidentified based on expressly defined tutorial information, such asinformation in a database record, configuration file, or applicationinstruction indicating a cardinality of the set of tutorial units. Insome aspects, the tutorial units may be identified based on implicitinformation. For example, database records, configuration files, orapplication instructions may include information describing the tutorialunits, and the cardinality of the set of tutorial units may be generatedby counting the tutorial units described.

A current state of the tutorial timeline chooser may be identified at410. The current state of the tutorial timeline chooser may beidentified in response to input, such as user input. For example,identifying the current state may include determining that tutorialtimeline chooser is in an initial state in response to user inputrequesting the tutorial. Identifying the current state of the tutorialtimeline chooser may include identifying tutorial units included andomitted from the output for display. The current state of the tutorialtimeline chooser may indicate a state of the tutorial timeline chooserimmediately before the input.

A tutorial timeline chooser may be generated or updated at 420 for thetutorial identified at 400 based on the current state identified at 410.Generating or updating a tutorial timeline chooser may includegenerating or updating a tutorial timeline representing the tutorial asa continuum, such as the tutorial timeline 320 shown in FIGS. 3A-3G.Generating or updating a tutorial timeline chooser may includegenerating or updating tutorial segment indicators representing thetutorial units, such as the tutorial segment indicators 330-336 shown inFIGS. 3A-3G. Generating or updating a tutorial timeline chooser mayinclude generating or updating tutorial controls, such as the tutorialcontrols 340-344 shown in FIGS. 3A-3G.

Generating or updating the tutorial timeline chooser may includedetermining whether to display one or more of the tutorial units. Forexample, the tutorial timeline chooser may be generated or updated inresponse to user input requesting the tutorial, the first tutorial unitin the sequence of tutorial units for the tutorial may be generated, andother tutorial units may be omitted. In another example, the tutorialtimeline chooser may be displayed in response to user input interactingwith the tutorial, and the tutorial units to include in, or omit from,the output for display may be determined in response to the user inputand the current state of the tutorial.

In some aspects, generating or updating the tutorial may includedetermining characteristics for displaying the tutorial timeline. Forexample, the tutorial may be generated or updated in response to userinput requesting the tutorial, the tutorial timeline may include a firstportion indicating a completed or shown portion of the tutorial, such asthe portion 322 on the left end of the tutorial timeline in FIGS. 3B-3Eor the tutorial timeline in FIG. 3F, and the tutorial timeline mayinclude a second portion indicating an incomplete or omitted portion ofthe tutorial, such as the tutorial timeline shown in FIGS. 3A and 3G, orthe tutorial timeline portion 324 shown in FIGS. 3B-3E.

In some aspects, generating or updating the tutorial may includepositioning the tutorial segment indicators, determining characteristicsfor displaying the tutorial segment indicators, or both. Generating orupdating the characteristics may include determining whether to includethe tutorial unit corresponding to each tutorial segment indicator inthe output for display, and generating or updating the tutorial segmentindicators such that the tutorial indicators indicate whether thecorresponding tutorial units are included in the output for display. Forexample, the tutorial may be generated or updated in response to userinput requesting the tutorial, the tutorial may include the firsttutorial unit, the first tutorial segment indicator may be generated orupdated such that a characteristic of the first tutorial segmentindicator, such as a background of the first tutorial segment indicator,indicates that the first tutorial unit is included in the output fordisplay, and the other segment indicators may be generated or updatedsuch that a characteristic of the other tutorial segment indicators,such as a background of each tutorial segment indicator, indicates thatthe corresponding tutorial units are omitted from the output fordisplay, as shown in FIG. 3B.

In some aspects, generating or updating the tutorial may includedetermining characteristics for displaying the tutorial controls. Forexample, the tutorial may be generated or updated in response to userinput requesting the tutorial, the tutorial may include the firsttutorial unit, the “None” control may be included to the left of thetutorial timeline, the “All” control may be included to the right of thetutorial timeline, and the slider control may be included along thetutorial timeline at a position corresponding to the first tutorialsegment indicator, as shown in FIG. 3B. In another example, the tutorialmay be generated or updated in response to user input selecting the“All” control, the tutorial may include the first tutorial unit, thesecond tutorial unit, the third tutorial unit, the fourth tutorial unit,the “None” control may be included to the left of the tutorial timeline,the “All” control may be included to the right of the tutorial timeline,a characteristic of the “All” control, such as a background color, mayindicate that the all control is disabled, and the slider control may beincluded along the tutorial timeline near the right end of the tutorialtimeline, as shown in FIG. 3F.

In some aspects, generating or updating the tutorial may includedetermining whether to display one or more of the tutorial units, andmay include determining characteristics for displaying the tutorialunits. For example, the tutorial may be generated or updated in responseto user input requesting the tutorial, the first tutorial unit may beincluded in the output for display, a “Next” control may be included inthe first tutorial unit, and the other tutorial units may be omittedfrom the output for display, as shown in FIG. 3B.

In some aspects, generating or updating the tutorial at 430 may includedetermining characteristics for displaying the tutorial based on acombination of input, such as user input, and a current state of thetutorial timeline chooser. For example, the tutorial may be generated orupdated in response to user input requesting the tutorial, and thecurrent state of the tutorial timeline chooser, which may be the stateimmediately prior to the input, may indicate an initial state. Inanother example, the current state of the tutorial may indicate a stateas shown in FIG. 3B, and the tutorial may be generated or updated inresponse to user input selecting the “Next” control, as shown in FIG.3C. In another example, the current state of the tutorial may indicate astate as shown FIG. 3A, and the tutorial may be generated or updated inresponse to user input selecting the third tutorial segment indicator334, as shown in FIG. 3G.

The tutorial identified at 400 may be displayed at 430, which mayinclude displaying the tutorial timeline choose generated or updating at420. Displaying the tutorial may include providing, via an outputmodule, the generated or updated tutorial timeline chooser in an outputfor display, storing the output for display, transmitting the output fordisplay, displaying the output, or a combination thereof.

Input may be received at 440, and the tutorial may be displayed, orupdated in response, at 410-430. For example, the input may indicate theselection of one of the tutorial segment indicators, the selection ofone of the tutorial controls, sliding of the tutorial slider, or theselection of a control included in a tutorial unit. Although not shownseparately, the tutorial timeline chooser may be terminated in responseto input, such as user input closing or completing the tutorial.

All or a portion of aspects of the invention described herein can beimplemented using a general purpose computer/processor with a computerprogram that, when executed, carries out any of the respectivetechniques, algorithms and/or instructions described herein. Inaddition, or alternatively, for example, a special purposecomputer/processor can be utilized which can contain specializedhardware for carrying out any of the techniques, algorithms, orinstructions described herein.

The implementations of computing devices as described herein (and thealgorithms, methods, instructions, etc., stored thereon and/or executedthereby) can be realized in hardware, software, or any combinationthereof. The hardware can include, for example, computers, intellectualproperty (IP) cores, application-specific integrated circuits (ASICs),programmable logic arrays, optical processors, programmable logiccontrollers, microcode, microcontrollers, servers, microprocessors,digital signal processors or any other suitable circuit. In the claims,the term “processor” should be understood as encompassing any of theforegoing hardware, either singly or in combination.

For example, one or more computing devices can include an ASIC orprogrammable logic array such as a field-programmable gate array (FPGA)configured as a special-purpose processor to perform one or more of theoperations or operations described or claimed herein. An example FPGAcan include a collection of logic blocks and random access memory (RAM)blocks that can be individually configured and/or configurablyinterconnected in order to cause the FPGA to perform certain functions.Certain FPGA's may contain other general or special purpose blocks aswell. An example FPGA can be programmed based on a hardware definitionlanguage (HDL) design, such as VHSIC Hardware Description Language orVerilog.

The aspects herein may be described in terms of functional blockcomponents and various processing operations. Such functional blocks maybe realized by any number of hardware and/or software components thatperform the specified functions. For example, the described aspects mayemploy various integrated circuit components, e.g., memory elements,processing elements, logic elements, look-up tables, and the like, whichmay carry out a variety of functions under the control of one or moremicroprocessors or other control devices. Similarly, where the elementsof the described aspects are implemented using software programming orsoftware elements the invention may be implemented with any programmingor scripting language such as C, C++, Java, assembler, or the like, withthe various algorithms being implemented with any combination of datastructures, objects, processes, routines or other programming elements.Functional aspects may be implemented in algorithms that execute on oneor more processors. Furthermore, the aspects of the invention couldemploy any number of conventional techniques for electronicsconfiguration, signal processing and/or control, data processing and thelike. The words “mechanism” and “element” are used broadly and are notlimited to mechanical or physical embodiments or aspects, but caninclude software routines in conjunction with processors, etc.

Implementations or portions of implementations of the above disclosurecan take the form of a computer program product accessible from, forexample, a computer-usable or computer-readable medium. Acomputer-usable or computer-readable medium can be any device that can,for example, tangibly contain, store, communicate, or transport aprogram or data structure for use by or in connection with anyprocessor. The medium can be, for example, an electronic, magnetic,optical, electromagnetic, or a semiconductor device. Other suitablemediums are also available. Such computer-usable or computer-readablemedia can be referred to as non-transitory memory or media, and mayinclude RAM or other volatile memory or storage devices that may changeover time. A memory of an apparatus described herein, unless otherwisespecified, does not have to be physically contained by the apparatus,but is one that can be accessed remotely by the apparatus, and does nothave to be contiguous with other memory that might be physicallycontained by the apparatus.

Any of the individual or combined functions described herein as beingperformed as examples of the invention may be implemented using machinereadable instructions in the form of code for operation of any or anycombination of the aforementioned computational hardware. Computationalcode may be implemented in the form of one or more modules by whichindividual or combined functions can be performed as a computationaltool, the input and output data of each module being passed to/from oneor more further module during operation of the methods and systemsdescribed herein.

The word “example” is used herein to mean serving as an example,instance, or illustration. Any aspect or design described herein as“example” is not necessarily to be construed as preferred oradvantageous over other aspects or designs. Rather, use of the word“example” is intended to present concepts in a concrete fashion. As usedin this application, the term “or” is intended to mean an inclusive “or”rather than an exclusive “or”. That is, unless specified otherwise, orclear from context, “X includes A or B” is intended to mean any of thenatural inclusive permutations. In other words, if X includes A; Xincludes B; or X includes both A and B, then “X includes A or B” issatisfied under any of the foregoing instances. In addition, thearticles “a” and “an” as used in this application and the appendedclaims should generally be construed to mean “one or more” unlessspecified otherwise or clear from context to be directed to a singularform. Moreover, use of the term “an implementation” or “oneimplementation” throughout is not intended to mean the same embodiment,aspect, or implementation unless described as such.

The particular implementations shown and described herein areillustrative examples of the invention and are not intended to otherwiselimit the scope of the invention in any way. For the sake of brevity,conventional electronics, control systems, software development andother functional aspects of the systems (and components of theindividual operating components of the systems) may not be described indetail. Furthermore, the connecting lines, or connectors shown in thevarious figures presented are intended to represent example functionalrelationships and/or physical or logical couplings between the variouselements. Many alternative or additional functional relationships,physical connections or logical connections may be present in apractical device. Moreover, no item or component is essential to thepractice of the invention unless the element is specifically describedas “essential” or “critical”.

The use of “including,” “comprising,” or “having” and variations thereofherein is meant to encompass the items listed thereafter and equivalentsthereof as well as additional items. Unless specified or limitedotherwise, the terms “mounted,” “connected,” “supported,” and “coupled”and variations thereof are used broadly and encompass both direct andindirect mountings, connections, supports, and couplings. Further,“connected” and “coupled” are not restricted to physical or mechanicalconnections or couplings.

The use of the terms “a” and “an” and “the” and similar referents in thecontext of describing the invention (especially in the context of thefollowing claims) should be construed to cover both the singular and theplural. Furthermore, recitation of ranges of values herein are merelyintended to serve as a shorthand method of referring individually toeach separate value falling within the range, unless otherwise indicatedherein, and each separate value is incorporated into the specificationas if it were individually recited herein. Finally, the operations ofall methods described herein are performable in any suitable orderunless otherwise indicated herein or otherwise clearly contradicted bycontext. The use of any and all examples, or example language (e.g.,“such as”) provided herein, is intended merely to better illuminate theinvention and does not pose a limitation on the scope of the inventionunless otherwise claimed.

All references, including publications, patent applications, andpatents, cited herein are hereby incorporated by reference to the sameextent as if each reference were individually and specifically indicatedas incorporated by reference and were set forth in its entirety herein.

The above-described aspects have been described in order to allow easyunderstanding of the present invention and do not limit the presentinvention. To the contrary, the invention is intended to cover variousmodifications and equivalent arrangements included within the scope ofthe appended claims, which scope is to be accorded the broadestinterpretation so as to encompass all such modifications and equivalentstructure as is permitted under the law.

What is claimed is:
 1. An apparatus for operating a window region of agraphical user interface associated with a computer-based tutorialsystem, comprising: a processor configured to execute instructionsstored in a memory, the instructions comprising: a tutorial timelinemodule that generates a tutorial output for display, the tutorial outputcomprising a graphical representation of a tutorial subject in atutorial display region of the graphical user interface, wherein atutorial associated with the tutorial subject includes a sequence oftutorial units stored in a memory associated with the processor; anoutput module that transmits the tutorial output via a graphical userinterface output interface; wherein: the tutorial timeline modulegenerates an updated tutorial output in response to user input signalsprovided via a graphical user interface input interface, the updatedtutorial output comprising: a first portion comprising the graphicalrepresentation of the tutorial subject; and a second portion comprisinga graphical tutorial timeline chooser for controlling the tutorial, thegraphical tutorial timeline chooser comprises a tutorial timelinedisplay region and a plurality of tutorial segment indicator displayregions; each tutorial segment indicator display region from theplurality of tutorial segment indicator display regions corresponds witha respective tutorial unit from the sequence of tutorial units; the userinput signals indicate a selection of a control included in the tutorialoutput for display in a sequentially last tutorial unit from thesequence of tutorial units included in the tutorial output for display,wherein selection of the control indicates a request for a sequentiallynext tutorial unit; and the output module generates the updated tutorialoutput and transmits the updated tutorial output via the graphical userinterface output interface, wherein generating the updated tutorialoutput comprises updating the control included in the sequentially lasttutorial unit from the sequence of tutorial units included in thetutorial output for display such that selection of the control indicatesa request to close the corresponding tutorial unit, and including thesequentially next tutorial unit in the updated tutorial output such thatthe tutorial output for display includes each tutorial unit in thetutorial output and the sequentially next tutorial unit.
 2. Theapparatus of claim 1, wherein the tutorial timeline module generates theupdated tutorial output such that the plurality of tutorial segmentindicator display regions are distributed along the tutorial timelinedisplay region in an order representing the sequence of tutorial units.3. The apparatus of claim 1, wherein the tutorial timeline modulegenerates the updated tutorial output such that: a sequentially firsttutorial unit from the sequence of tutorial units is included in thetutorial output for display with each other tutorial unit from thesequence of tutorial units being omitted from the tutorial output fordisplay; and a characteristic of a first tutorial segment indicatordisplay region from the plurality of tutorial segment indicator displayregion indicates that the sequentially first tutorial unit from thesequence of tutorial units is included in the tutorial output fordisplay, and a respective characteristic of each other tutorial segmentindicator display regions from the plurality of tutorial segmentindicator display regions indicates that the other tutorial units fromthe sequence of tutorial units are omitted from the tutorial output fordisplay.
 4. The apparatus of claim 1, wherein the tutorial timelinemodule generates the updated tutorial output in response to the userinput signals provided via the graphical user interface input interfaceindicating user input requesting the tutorial.
 5. The apparatus of claim1, wherein the tutorial timeline module: identifies a current state ofthe graphical tutorial timeline chooser in response to the user inputsignals; and generates the updated tutorial output based on the userinput signals and the current state.
 6. The apparatus of claim 5,wherein the tutorial timeline module generates the updated tutorialoutput such that the current state indicates: a first subset of tutorialunits from the sequence of tutorial units that is currently included inthe tutorial output for display; and a second subset of tutorial units,from the sequence of tutorial units that is currently omitted from thetutorial output for display.
 7. The apparatus of claim 6, wherein: thetutorial timeline module generates the updated tutorial output by:identifying a sequentially first tutorial unit from the second subset asthe sequentially next tutorial unit; identifying a tutorial segmentidentifier from a plurality of tutorial segment identifierscorresponding to the sequentially next tutorial unit as a currenttutorial segment identifier; updating a characteristic of the currenttutorial segment identifier to indicate that the sequentially nexttutorial unit is included in the tutorial output for display; updating aposition of a slider control to a position along the tutorial timelinedisplay region adjacent to the current tutorial segment identifier; andincluding the sequentially next tutorial unit in the updated tutorialoutput such that the tutorial output for display includes each tutorialunit from the first subset, includes the sequentially first tutorialunit from the second subset, and omits each other tutorial unit from thesecond subset.
 8. The apparatus of claim 6, wherein: the user inputsignals indicate a selection of a control included in the tutorialoutput for display in a target tutorial unit from the first subset;selecting the control indicates a request to close the target tutorialunit; and wherein the tutorial timeline module generates the updatedtutorial output by: identifying a tutorial segment identifier from aplurality of tutorial segment identifiers corresponding to the targettutorial unit as a target tutorial segment identifier; updating acharacteristic of the target tutorial segment identifier to indicatethat the target tutorial unit is omitted in the tutorial output fordisplay; and omitting the target tutorial unit from the updated tutorialoutput such that the tutorial output for display includes each tutorialunit from the first subset other than the target tutorial unit, andomits each tutorial unit from the second subset.
 9. The apparatus ofclaim 6, wherein: the user input signals indicate a request to includethe sequence of tutorial units in the tutorial output for display; andthe tutorial timeline module generates the updated tutorial output by:updating a characteristic of each tutorial segment identifier from aplurality of tutorial segment identifiers to indicate that acorresponding tutorial unit is included in the tutorial output fordisplay; updating a position of a slider control to a position along thetutorial timeline display region adjacent to a sequentially lasttutorial segment identifier from the plurality of tutorial segmentidentifiers or to a position along the tutorial timeline display regionat a rightmost end of the tutorial timeline display region; on acondition that the first subset includes at least one tutorial unit andon a condition that the second subset includes at least one tutorialunit, updating a control included in a sequentially last tutorial unitfrom the first subset such that selection of the control indicates arequest to close the corresponding tutorial unit; and including eachtutorial unit from the second subset of tutorial units in the updatedtutorial output such that a sequentially last tutorial unit from thesecond subset includes a control that represents a request to completethe tutorial, and such that the tutorial output for display includeseach tutorial unit from the sequence of tutorial units.
 10. Theapparatus of claim 6, wherein: the user input signals indicate a requestto omit the sequence of tutorial units from the tutorial output fordisplay; and the tutorial timeline module generates the updated tutorialoutput by: updating a characteristic of each tutorial segment identifierfrom a plurality of tutorial segment identifiers to indicate that thecorresponding tutorial unit is omitted from the tutorial output fordisplay; updating a position of a slider control to a position along thetutorial timeline display region at a leftmost end of the tutorialtimeline display region; and omitting each tutorial unit from thesequence of tutorial units from the updated tutorial output.
 11. Theapparatus of claim 6, wherein: the user input signals indicate aselection of a target tutorial segment identifier corresponding to atarget tutorial unit from the second subset; and the tutorial timelinemodule generates the updated tutorial output by: updating acharacteristic of the target tutorial segment identifier to indicatethat the target tutorial unit is included in the tutorial output fordisplay, on a condition that the first subset includes a tutorial unit,updating a control included in a sequentially last tutorial unit fromthe first subset such that selection of the control indicates a requestto close the corresponding tutorial unit; and including the targettutorial unit in the updated tutorial output.
 12. The apparatus of claim11, wherein: the second subset includes a tutorial unit sequentiallypreceding the target tutorial unit; and including the target tutorialunit in the updated tutorial output includes omitting the tutorial unitfrom the second subset sequentially preceding the target tutorial unit.13. An apparatus for operating a window region of a graphical userinterface associated with a computer-based tutorial system, comprising:a processor configured to execute instructions stored in a memory to:generate an output for display, the output comprising a representationof a tutorial subject, wherein a tutorial associated with the tutorialsubject includes a sequence of tutorial units; transmit the output fordisplay, receive a user input indicating a request for a sequentiallynext tutorial unit from the sequence of tutorial units via a graphicaltutorial timeline chooser for controlling the tutorial, generate anupdated tutorial output in response to the user input, the updatedtutorial output comprising a first portion including the representationof the tutorial subject, and a second portion including the tutorialtimeline chooser, wherein the tutorial timeline chooser comprises atutorial timeline and a plurality of tutorial segment indicators,wherein each tutorial segment indicator from the plurality of tutorialsegment indicators corresponds with a respective tutorial unit from thesequence of tutorial units, wherein generating the updated tutorialoutput comprises identifying a current state of the tutorial timelinechooser, wherein the current state indicates a first subset of tutorialunits, from the sequence of tutorial units, that is currently includedin the output for display, and a second subset of tutorial units, fromthe sequence of tutorial units, that is currently omitted from theoutput for display, updating a control included in the sequentially lasttutorial unit from the first subset such that selection of the controlindicates a request to close the corresponding tutorial unit, whereinthe updated tutorial output includes the first subset of tutorial unitsand the sequentially next tutorial unit, and transmit the updatedtutorial output as the output for display.
 14. The apparatus of claim13, wherein the user input indicates a selection of the control includedin the output for display in a sequentially last tutorial unit from thefirst subset, wherein selecting the control indicates the request forthe sequentially next tutorial unit, and wherein the processor isconfigured to execute instructions stored in the memory to generate theupdated tutorial output by: identifying a sequentially first tutorialunit from the second subset as the sequentially next tutorial unit,identifying a tutorial segment identifier, from a plurality of tutorialsegment identifiers, corresponding to the sequentially next tutorialunit as a current tutorial segment identifier, updating a characteristicof the current tutorial segment identifier to indicate that thesequentially next tutorial unit is included in the output for display,updating a position of a slider control to a position along the tutorialtimeline adjacent to the current tutorial segment identifier, andwherein the updated tutorial output omits each other tutorial unit fromthe second subset.
 15. The apparatus of claim 13, wherein the user inputindicates a selection of a control included in the output for display ina target tutorial unit from the first subset, wherein selecting thecontrol indicates a request to close the target tutorial unit, andwherein the processor is configured to execute instructions stored inthe memory to generate the updated tutorial output by: identifying atutorial segment identifier, from a plurality of tutorial segmentidentifiers, corresponding to the target tutorial unit as a targettutorial segment identifier, updating a characteristic of the targettutorial segment identifier to indicate that the target tutorial unit isomitted in the output for display, and omitting the target tutorial unitfrom the updated tutorial output, such that the output for displayincludes each tutorial unit from the first subset other than the targettutorial unit, and omits each tutorial unit from the second subset. 16.The apparatus of claim 13, wherein the user input indicates a request toinclude the sequence of tutorial units in the output for display, andwherein the processor is configured to execute instructions stored inthe memory to generate the updated tutorial output by: updating acharacteristic of each tutorial segment identifier from a plurality oftutorial segment identifiers to indicate that a corresponding tutorialunit is included in the output for display, updating a position of aslider control to a position along the tutorial timeline adjacent to asequentially last tutorial segment identifier from the plurality oftutorial segment identifiers or to a position along the tutorialtimeline at a rightmost end of the tutorial timeline, on a conditionthat the first subset includes at least one tutorial unit and on acondition that the second subset includes at least one tutorial unit,updating the control included in a sequentially last tutorial unit fromthe first subset such that selection of the control indicates a requestto close the corresponding tutorial unit, and including each tutorialunit from the second subset of tutorial units in the updated tutorialoutput, such that a sequentially last tutorial unit from the secondsubset includes a control that represents a request to complete thetutorial, and such that the output for display includes each tutorialunit from the sequence of tutorial units.
 17. The apparatus of claim 13,wherein the user input indicates a request to omit the sequence oftutorial units from the output for display, and wherein the processor isconfigured to execute instructions stored in the memory to generate theupdated tutorial output by: updating a characteristic of each tutorialsegment identifier from a plurality of tutorial segment identifiers toindicate that the corresponding tutorial unit is omitted from the outputfor display, updating a position of a slider control to a position alongthe tutorial timeline at a leftmost end of the tutorial timeline, andomitting each tutorial unit from the sequence of tutorial units from theupdated tutorial output.
 18. The apparatus of claim 13, wherein the userinput indicates a selection of a target tutorial segment identifiercorresponding to a target tutorial unit from the second subset, andwherein the processor is configured to execute instructions stored inthe memory to generate the updated tutorial output by: updating acharacteristic of the target tutorial segment identifier to indicatethat the target tutorial unit is included in the output for display, ona condition that the first subset includes a tutorial unit, updating thecontrol included in a sequentially last tutorial unit from the firstsubset, such that selection of the control indicates a request to closethe corresponding tutorial unit, and including the target tutorial unitin the updated tutorial output.
 19. The apparatus of claim 18, whereinthe second subset includes a tutorial unit sequentially preceding thetarget tutorial unit, and wherein including the target tutorial unit inthe updated tutorial output includes omitting the tutorial unit from thesecond subset sequentially preceding the target tutorial unit.
 20. Amethod for operating a window region of a graphical user interfaceassociated with a computer-based tutorial system, comprising:generating, using a processor, a tutorial output for display on adisplay device, the tutorial output comprising a representation of atutorial subject, wherein a tutorial associated with the tutorialsubject comprises a sequence of tutorial units stored in a memoryaccessible by the processor; transmitting via a graphical user interfaceoutput interface the tutorial output for the display; generating anupdated tutorial output in response to a user input entered at agraphical user interface input interface, the updated tutorial outputcomprising a first portion comprising the representation of the tutorialsubject, and a second portion including a tutorial timeline chooser forcontrolling the tutorial, wherein the tutorial timeline choosercomprises a tutorial timeline and a plurality of tutorial segmentindicators, wherein each tutorial segment indicator from the pluralityof tutorial segment indicators corresponds with a respective tutorialunit from the sequence of tutorial units, wherein generating the updatedtutorial output comprises: identifying a current state of the tutorialtimeline chooser, wherein the current state indicates a first subset oftutorial units from the sequence of tutorial units that is currentlyincluded in the tutorial output for display, and a second subset oftutorial units from the sequence of tutorial units that is currentlyomitted from the tutorial output for display, and wherein the user inputindicates a selection of a target tutorial segment identifiercorresponding to a target tutorial unit from the second subset; updatinga characteristic of the target tutorial segment identifier to indicatethat the target tutorial unit is included in the tutorial output fordisplay; on a condition that the first subset includes a tutorial unit,updating a control included in a sequentially last tutorial unit fromthe first subset, such that selection of the control indicates a requestto close the corresponding tutorial unit, wherein the second subsetincludes a tutorial unit sequentially preceding the target tutorial unitbeing omitted from the updated tutorial output and wherein including thetarget tutorial unit in the updated tutorial output includes omittingthe tutorial unit from the second subset sequentially preceding thetarget tutorial unit; and including the target tutorial unit in theupdated tutorial output; and transmitting via the graphical userinterface output interface the updated tutorial output for the display.